package org.example.reflection;

import org.example.pojo.User;

import java.lang.reflect.Constructor;

/**
 * 反射：就是通过Class文件对象，去使用该文件中的成员变量，构造方法，成员方法
 *
 * 要想使用，首先必须得到Class文件对象，其实也就是Class类的对象
 * Class类：
 *      成员变量 Field
 *      构造方法 Constructor
 *      成员方法 Method
 */
public class Main {
    public static void main(String[]args) throws NoSuchMethodException, NoSuchFieldException, ClassNotFoundException {
        // 方式一
        User user = new User("dd","dd",12);
        Class<? extends User> aClass = user.getClass();

        // 方式二
        Class s = User.class;
        Class<?> aClass1 = s.getClass();

        System.out.println(aClass == s);
        System.out.println(aClass + "\n" + s);

        // 方式三
        Class<?> aClass2 = Class.forName("org.example.pojo.User");
        System.out.println(aClass == aClass2);
    }
}
